The invention relates to a video decoder comprising a control unit, a picture memory and a loop filter.
Fundamental functional and constructive features of such a video decoder are described in, for example the H.261 Recommendation (cf., for example Draft Revision of Recommendation H.261: Videocodec for Audiovisual Services at p.times.kbit/s. Signal Processing: Image Communication 2 (1990), pp. 221 to 239, Elsevier Science Publishers BV). This Recommendation will hereinafter be referred to by (1).
FIG. 3 in (1) shows the circuit diagram of an associated coder whose operation and structure are similar to the function and construction of a decoder, as will now be explained in broad outline.
The coder in accordance with (1) is a predictive coder in which the data of a decoded video picture are used as prediction values for the data of the subsequent video picture. In general, the difference (prediction errors) between the values of an input picture and the prediction values is coded and transmitted. In exceptional cases one refrains from the subtraction and the unchanged input picture is coded and transmitted. When the prediction error is coded, the coder operates in the interframe mode, and in the opposite case it operates in the intraframe mode. When motion pictures are concerned, a motion estimation may also be performed so as to obtain better prediction values for these types of pictures.
Due to the prediction coding, the coder includes a feedback loop with a picture memory in which the prediction values--thus the video picture which has preceded the input picture and has been coded and decoded again--are buffered. Consequently, the feedback loop comprises further functional units which eliminate the operations performed in the coding branch, in so far as this is possible. Moreover, the feedback loop includes a low-pass filter referred to as the loop filter.
The coding branch itself includes a transform unit which subjects the data of an input picture in blocks to a two-dimensional discrete cosine transform (DCT) in, for example the intraframe mode. These dam blocks are either the luminance values of a quadratic section of the picture consisting of 8.times.8 pixels, or the 8.times.8 chrominance values (C.sub.B or C.sub.R) of a quadratic section of a picture obtained by sub-sampling, which section consists of 16.times.16 pixels. All dam of a quadratic picture section of 16.times.16 pixels are referred to as macroblocks.
The overall quantity of pixels of a video picture is subdivided without gaps into quadratic picture sections (for the sake of simplicity also referred to as blocks or macroblocks), whose associated data blocks are successively transformed. A quantizer converts the DCT transform coefficients dually represented by twelve bits into quantization indices which--in a variable-length coded form--are written into a buffer memory for the purpose of transmission.
In accordance with the operations described hereinbefore, the feedback branch comprises a functional unit which--save for the inevitable quantization errors--converts the quantization indices into original coefficients again, and an inverse transform unit which cancels the cosine transform. With a subsequent adder, the prediction values are added again only in the case of coding a difference picture, and the full video picture thus regained is stored in the picture memory of the feedback branch. The picture memory precedes the loop filter whose output is connected to an input of the subtracter as well as to an input of the adder via a controllable switch. It improves the prediction for motion pictures.
The described coding and decoding processes are controlled by a control unit. It controls, inter alia the quantizer and the loop filter through corresponding signals. The quantizer has 31 settings which, according to (1), can only be changed from macroblock to macroblock. The associated control signal (indication signal) is transmitted by the control unit to the quantizer as well as to the receiver. In accordance with the settings of the quantizer, it may assume 31 values. The larger the value, the coarser the quantization.
The blocks stored in the picture memory are filtered in a two-dimensional and linear way by the loop filter. More specifically this means that, for example the data of three pixels of a block which are located in a horizontal row of pixels are linearly averaged by means of the weighting factors 1/4, 1/2, and 1/4. The control unit reads these data by transmission of addresses at the address input of the picture memory and stores them in buffer memories of the loop filter. Pixels located at the right-hand or left-hand edge of a block are not filtered in the case of horizontal filtering. As soon as the control unit transmits the addresses of these peripheral pixels, the loop filter is deactivated. The same applies in the case of vertical filtering of the peripheral pixels at the upper and lower edges of a block. The loop filter is also deactivated when the coder operates in the intraframe mode.
Transmitted video pictures are decoded at the receiver end by a decoder comprising a circuit of functional units corresponding to the functional units in the feedback branch of the coder. The prediction values in the coder correspond to the decoded data in the decoder.
The described processing of video pictures in blocks has unwanted consequences when video pictures are displayed on a monitor. Particularly at low transmission bit rates, the decoded pictures show block edges which, overall, constitute a more or less fixed grating on the monitor which considerably degrades the quality of the displayed pictures. A number of proposals is known for possibly completely filtering such a block grating by postprocessing the decoded video pictures (cfi, for example DE 39 17 085, DE 40 17 375, DE 41 28 977). In these known proposals the number of components in the circuit required for such a filter is considerable, because such a filter is to be composed of separate components and should be connected to the output of a decoder as described in (1).